package com.whli.jee.system.dao;

import com.whli.jee.common.web.dao.IBaseDao;
import com.whli.jee.system.entity.SysUser;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 *
 * @author whli
 * @version 1.0
 * @since 1.0
 * */
@Repository
public interface ISysUserDao extends IBaseDao<SysUser> {

    /**
     * 由登录用户名查询用户
     * @param loginName
     * @return
     */
    SysUser getByLoginNameOrEmailOrPhone(@Param("loginName") String loginName);

    /**
     * 由邮箱查询用户
     * @param email
     * @return
     */
    SysUser getByEmail(@Param("email") String email);

    /**
     * 由邮箱查询用户
     * @param phone
     * @return
     */
    SysUser getByPhone(@Param("phone") String phone);

    /**
     * 重置密码
     * @param id
     * @param password
     * @return
     */
    int resetPassword(@Param("id") String id, @Param("password") String password);

    /**
     * 根据角色ID查询用户
     * @param roleId
     * @return
     */
    List<SysUser> listByRole(@Param("roleId")String roleId);

    /**
     * 验证用户名唯一
     * @param id
     * @param loginName
     * @return
     */
    SysUser validByLoginName(@Param("id") String id, @Param("loginName") String loginName);

    /**
     * 验证邮箱唯一
     * @param id
     * @param email
     * @return
     */
    SysUser validByEmail(@Param("id") String id, @Param("email") String email);

    /**
     * 验证手机唯一
     * @param id
     * @param phone
     * @return
     */
    SysUser validByPhone(@Param("id") String id, @Param("phone") String phone);

    /**
     * 启用/禁用用户
     * @param enable
     * @param ids
     * @return
     */
    int modifyEnabled(@Param("enable") String enable, @Param("ids") List<String> ids);
}
